We want touch events to enable the keyboard and focus tracking, but
not to actually show it right away. Implement that behavior by only
changing the visibility of the keyboard when triggered by a GSettings
change.
https://bugzilla.gnome.org/show_bug.cgi?id=788188
},
_syncEnabled: function () {
+ let wasEnabled = this._enableKeyboard;
this._enableKeyboard = this._a11yApplicationsSettings.get_boolean(SHOW_KEYBOARD);
this._enabled = this._enableKeyboard || this._lastDeviceIsTouchscreen();
if (!this._enabled && !this._keyboard)
this._setCaretTrackerEnabled(this._enabled);
- if (this._enabled) {
- if (!this._keyboard)
- this._setupKeyboard();
- else
- Main.layoutManager.showKeyboard();
- } else {
+ if (this._enabled && !this._keyboard)
+ this._setupKeyboard();
+
+ if (this._enableKeyboard && !wasEnabled)
+ Main.layoutManager.showKeyboard();
+ else if (!this._enableKeyboard && wasEnabled)
Main.layoutManager.hideKeyboard(true);
- }
},
_sync: function () {